package ascensor;

import gnu.io.SerialPort;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Timer;
import java.util.TimerTask;

import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;

//import javax.swing.Timer;

/**
 * This code was edited or generated using CloudGarden's Jigloo SWT/Swing GUI
 * Builder, which is free for non-commercial use. If Jigloo is being used
 * commercially (ie, by a corporation, company or business for any purpose
 * whatever) then you should purchase a license for each developer using Jigloo.
 * Please visit www.cloudgarden.com for details. Use of Jigloo implies
 * acceptance of these licensing terms. A COMMERCIAL LICENSE HAS NOT BEEN
 * PURCHASED FOR THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED LEGALLY FOR
 * ANY CORPORATE OR COMMERCIAL PURPOSE.
 */
public class NewJFrame extends javax.swing.JFrame
{

	{
		// Set Look & Feel
		try
		{
			javax.swing.UIManager
					.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
		} catch (Exception e)
		{
			e.printStackTrace();
		}
	}

	private JButton jButton1;
	public static JTextField jAreaTexto2;
	public static JTextField jAreaTexto1;
	private JButton jButton14;
	private JButton jButton13;
	private JButton jButton12;
	private JButton jButton11;
	private JButton jButton10;
	private JButton jButton9;
	private JButton jButton8;
	private JButton jButton7;
	private JButton jButton6;
	private JButton jButton5;
	private JButton jButton4;
	private JButton jButton3;
	private JButton jButton2;
	SerialPort puertoAbierto;
	SerialPort puertoAbierto2;

	static Timer timer = new Timer(); // para implementar el timer.

	LeerArchivoConfiguracion Lectura = new LeerArchivoConfiguracion();
	/**
	 * Lectura de Variables de configuracion de parametros para la conexion por
	 * USB
	 */

	String BaudRate = Lectura.LeerArchivoConfig("baudrate");
	String Bitsdatos = Lectura.LeerArchivoConfig("bitsdatos");
	String Bitsparada = Lectura.LeerArchivoConfig("bitsparada");
	String Paridad = Lectura.LeerArchivoConfig("paridad");

	/**
	 * Lectura de Variables de configuracion general.
	 */

	int CantidadArduinos = Integer.valueOf(Lectura
			.LeerArchivoConfig("cantiArduinos"));
	int CantidadPisosARD1 = Integer.valueOf(Lectura
			.LeerArchivoConfig("cantpisosArd1"));
	int CantidadPisosARD2 = Integer.valueOf(Lectura
			.LeerArchivoConfig("cantpisosArd2"));
	int CantidadPisosARD3 = Integer.valueOf(Lectura
			.LeerArchivoConfig("cantpisosArd3"));
	int CantidadPlacasARD1 = Integer.valueOf(Lectura
			.LeerArchivoConfig("cantplacaArduino1"));
	int CantidadPlacasARD2 = Integer.valueOf(Lectura
			.LeerArchivoConfig("cantplacaArduino2"));
	int CantidadPlacasARD3 = Integer.valueOf(Lectura
			.LeerArchivoConfig("cantplacaArduino3"));
	int CantidadTotalPisos = Integer.valueOf(Lectura
			.LeerArchivoConfig("cantpisos"));
	int SalidaBotonAbrirPuerta = Integer.valueOf(Lectura
			.LeerArchivoConfig("SalAbrirPuerta"));
	int SalidaBotonCerrarPuerta = Integer.valueOf(Lectura
			.LeerArchivoConfig("SalCerrarPuerta"));

	int delay = Integer.valueOf(Lectura.LeerArchivoConfig("retinicio"));
	int period = Integer.valueOf(Lectura.LeerArchivoConfig("delams"));

	int pos;
	int placa = 1; // Variable que controla el nro de placa a leer en el momento

	int Cont = 0;
	int Cont1 = 0;
	int Cont2 = 0;
	int Cont3 = 0;

	/*
	 * String PrimeraCadena = ""; String SegundaCadena = ""; String
	 * TerceraCadena = ""; //
	 */
	int[] PrimeroPiso = new int[16]; // Pisos elegidos en el ARDUINO 1
	int[] SegundoPiso = new int[16]; // Pisos elegidos en el ARDUINO 2
	int[] TerceroPiso = new int[16]; // Pisos elegidos en el ARDUINO 3
	int[] PisosElegidos = new int[205]; // Pisos elegidos en total
	// int[] VectorOrdenado = new int [205];

	ComunicacionSerie Primero = new ComunicacionSerie(); // instancia de
															// ComunicacionSerie
	boolean PrimerPuertoAbierto = false; // Flag que indica que se inicio un
											// puerto
	ComunicacionSerie Segundo = new ComunicacionSerie(); // instancia de
															// ComunicacionSerie
	boolean SegundoPuertoAbierto = false;

	ComunicacionSerie Tercero = new ComunicacionSerie(); // instancia de
	// ComunicacionSerie
	boolean TercerPuertoAbierto = false;

	// ComunicacionSerie[] Contador = new ComunicacionSerie();

	ComunicacionSerie PuertoTemporal = new ComunicacionSerie(); // instancia de
																// ComunicacionSerie
																// Se usa
																// temporalmente
																// para detectar
																// que
																// placa esta
																// conectada a
																// que puerto
	DetectarPuerto Detecto = new DetectarPuerto(); // instancia de Class
													// Detectar Puerto

	String[] PuertoEncontrado = new String[20]; // contiene los string de los
												// puertos detectados
	int[] DireccionArduino = new int[20]; // Contiene la direccion que responde
											// el Arduino en el puerto

	/*
	 * // encontrado. Timer timer2= new Timer(); boolean frozen; //
	 */

	/**
	 * Auto-generated main method to display this JFrame
	 */
	public static void main(String[] args)
	{
		SwingUtilities.invokeLater(new Runnable()
		{
			public void run()
			{
				NewJFrame inst = new NewJFrame();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}

	public NewJFrame()
	{
		super();
		System.out.println("Constructor");
		initGUI();
	}

	// ---------------------------------------------------------------------------
	// TimerTask timerTask = new TimerTask()
	/*
	 * class AccionTimer extends TimerTask { public void run() { // Aquí el
	 * código que queremos ejecutar. } };
	 * 
	 * public void Start(int pSeg) throws Exception { frozen = false; // le
	 * asignamos una tarea al timer timer.schedule(new AccionTimer(), 0, pSeg *
	 * 1000 * 60); }// end Start
	 * 
	 * public void Stop() { System.out.println("Stop"); frozen = true; }// end
	 * Stop
	 * 
	 * public void Reset() { System.out.println("Reset"); frozen = true;
	 * //segundos = 0; }// end Reset
	 * 
	 * 
	 * // Aquí se pone en marcha el timer cada segundo.
	 * 
	 * // Dentro de 0 milisegundos avísame cada 1000 milisegundos
	 * 
	 * //
	 */
	public void IniciarTimer()
	{
		// Timer timer = new Timer();
		Cont = 0;
		Cont1 = 0;
		timer.scheduleAtFixedRate(new TimerTask()
		{
			public void run()
			{

				// Accion a Realizar
				// LeerPuerto(1); //solo para prueba del cambio del micro
				// for (placa = 1; placa < 9; placa = placa + 2)
				if (placa < 9)
				{
					if (PrimerPuertoAbierto == true)
						Primero.LeerPuerto(placa);
					if (SegundoPuertoAbierto == true)
						Segundo.LeerPuerto(placa);
					if (TercerPuertoAbierto == true)
						Tercero.LeerPuerto(placa);
					if (Primero.DatosRecibidos == true) // llegaron datos al pto
														// 1
					{
						PrimeroPiso = Primero.Analizar();
						Primero.DatosRecibidos = false;
						for (Cont = 0 + Cont1; Cont < 16 + Cont1; ++Cont)
						{
							PisosElegidos[Cont] = PrimeroPiso[Cont - Cont1];
						}
						Cont1 = Cont;
					}
					if (Segundo.DatosRecibidos == true) // llegaron datos al pto
														// 2
					{
						SegundoPiso = Segundo.Analizar();
						Segundo.DatosRecibidos = false;

						for (Cont = 0 + Cont2 + 64; Cont < 16 + Cont2 + 64; ++Cont)
						{
							PisosElegidos[Cont] = SegundoPiso[Cont - Cont2 - 64];
						}
						Cont2 = Cont - 64;
					}
					if (Tercero.DatosRecibidos == true) // llegaron datos al pto
														// 3
					{
						TerceroPiso = Tercero.Analizar();
						Tercero.DatosRecibidos = false;
						for (Cont = 0 + Cont3 + 128; Cont < 16 + Cont3 + 128; ++Cont)
						{
							PisosElegidos[Cont] = TerceroPiso[Cont - Cont3
									- 128];
						}

						Cont3 = Cont - 128;
					}

					// jAreaTexto1.setText(PrimeraCadena + SegundaCadena +
					// TerceraCadena);

					placa = placa + 2;

				} else
				// una vez leidas todas las placas de todos los Arduino se
				// reinicia
				// los contadores y se analiza la informacion a mostrar!

				{

					// for (int u = 0;u<200;++u) VectorOrdenado[u] =0;
					// //inicializo el vector ordenado

					// int Variableintermerdia = 0;

					for (int u = 0; u < 200; ++u)
					{
						for (int i = 0; i < 200 - u; ++i)
						{
							if (PisosElegidos[i] > PisosElegidos[i + 1])
							{
								int Variableintermerdia = PisosElegidos[i];
								PisosElegidos[i] = PisosElegidos[i + 1];
								PisosElegidos[i + 1] = Variableintermerdia;
							}
						}
					}

					int mostrar = 0;
					String CadenaMostrar = " ";
					while (true)
					{
						if (PisosElegidos[mostrar] != 0)
						{
							// System.out.println("PISO " +
							// PisosElegidos[mostrar]);
							jAreaTexto1.setText(CadenaMostrar + " "
									+ PisosElegidos[mostrar]);
							CadenaMostrar = jAreaTexto1.getText();
						}
						++mostrar;
						if (mostrar == 200)
							break;
					}

					placa = 1;
					Cont1 = 0;
					Cont2 = 0;
					Cont3 = 0;
					Cont = 0;
					for (int u = 0; u < 200; ++u)
						PisosElegidos[u] = 0; // inicializar el vector de los
												// pisos!
				}
			}
		}, delay, period);
	}// */

	// ----------------------------------------------------------------------------

	private void initGUI()
	{
		try
		{
			GridBagLayout thisLayout = new GridBagLayout();
			getContentPane().setLayout(thisLayout);
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			//this.setExtendedState(this.getExtendedState()|JFrame.MAXIMIZED_BOTH);

			// do whatever else you want to do ...
			///this.setVisible();
			this.setResizable(false);
			this.setTitle("ASCENSORES SERVAS ");
			this.setAlwaysOnTop(true);
			this.addWindowListener(new WindowAdapter()
			{
				public void windowOpened(WindowEvent evt)
				{
					/***
					 * trata de obtener el primer puerto USB Libre
					 * 
					 */
					try
					{
						PuertoEncontrado = Detecto.getAvailableSerialPorts();
						pos = 0;
						while (PuertoEncontrado[pos] != null)
						{
							System.out.println("puerto Encontrado "
									+ PuertoEncontrado[pos]);
							PuertoTemporal.Abrirpuerto(PuertoEncontrado[pos],
									BaudRate, Bitsdatos, Bitsparada, Paridad);// abro
																				// el
																				// puerto
																				// en
																				// cuestion
																				// para
																				// ver
																				// que
																				// dato
																				// me
																				// devuelve
																				// la
																				// placa
							PuertoTemporal.main(); // inicializo la escucha del
													// puerto serie
							Thread.sleep(2000);
							PuertoTemporal.EscribirPuerto("OR00"); // Solicito a
																	// la placa
																	// que me
																	// diga su
																	// direccion.
							Thread.sleep(1000);
							PuertoTemporal.CerrarPuerto();// Cierro el puerto en
															// cuestion una vez
															// obtenido el dato
															// deseado.
							DireccionArduino[pos] = PuertoTemporal
									.getDireccionDetectada();
							// System.out.println("Direccion " +
							// DireccionArduino[pos]);
							++pos;
						}
						// DireccionArduino =
						for (int u = 0; u < pos; ++u)
						{
							if (DireccionArduino[u] != 0)
							{
								System.out.println("En el puerto USB "
										+ PuertoEncontrado[u]
										+ " Se encontro el Controlador "
										+ DireccionArduino[u]);
							}
							if (DireccionArduino[u] == 1) // se conecta el
															// arduino 1 con la
															// primera instancia
							{
								Primero.Abrirpuerto(PuertoEncontrado[u],
										BaudRate, Bitsdatos, Bitsparada,
										Paridad);
								Primero.main();
								PrimerPuertoAbierto = true;
							}
							if (DireccionArduino[u] == 2)// se conecta el
															// arduino 2 con la
															// segunda instancia
							{
								Segundo.Abrirpuerto(PuertoEncontrado[u],
										BaudRate, Bitsdatos, Bitsparada,
										Paridad);
								Segundo.main();
								SegundoPuertoAbierto = true;
							}
							if (DireccionArduino[u] == 3)// se conecta el
															// arduino 3 con la
															// tercera instancia
							{
								Tercero.Abrirpuerto(PuertoEncontrado[u],
										BaudRate, Bitsdatos, Bitsparada,
										Paridad);
								Tercero.main();
								TercerPuertoAbierto = true;
							}
						}

						// una vez iniciado los puertos a usar
						// arrancar el Timer

						// Start(1);
						IniciarTimer();

					} catch (Exception e)
					{
						e.printStackTrace();
					}

				}

				public void windowClosed(WindowEvent evt)
				{

					timer.cancel();
					try
					{
						if (PrimerPuertoAbierto == true)
							Primero.CerrarPuerto();
						if (SegundoPuertoAbierto == true)
							Segundo.CerrarPuerto();
						if (TercerPuertoAbierto == true)
							Tercero.CerrarPuerto();
					} catch (Exception e)
					{
						e.printStackTrace();
					}

				}

			});

			{
				jButton1 = new JButton();
				getContentPane().add(
						jButton1,
						new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0,
								GridBagConstraints.CENTER,
								GridBagConstraints.NONE,
								new Insets(0, 0, 0, 0), 0, 0));
				jButton1.setText("1");
				jButton1.setPreferredSize(new java.awt.Dimension(75, 67));
				jButton1.setFont(new java.awt.Font("Aakar", 1, 20));
				jButton1.addMouseListener(new MouseAdapter()
				{
					public void mouseClicked(MouseEvent evt)
					{
						jAreaTexto2.setText(jAreaTexto2.getText() + "1");
					}
				});
			}
			{
				jButton2 = new JButton();
				jButton2.setText(">|<");
				jButton2.addMouseListener(new MouseAdapter()
				{
					public void mouseClicked(MouseEvent evt)
					{
						System.out.println("jButton2.mouseClicked, event="
								+ evt);
						// TODO add your code for jButton2.mouseClicked
						// trata de cerrar el puerto
						/*
						 * try { //
						 * TwoWaySerialComm.CerrarPuerto("/dev/ttyUSB1");
						 * TwoWaySerialComm.CerrarPuerto(); } catch (Exception
						 * e) { // TODO Auto-generated catch block
						 * e.printStackTrace(); }//
						 */

					}
				});
			}
			{
				jButton3 = new JButton();
				getContentPane().add(
						jButton3,
						new GridBagConstraints(4, 0, 1, 1, 0.0, 0.0,
								GridBagConstraints.CENTER,
								GridBagConstraints.NONE,
								new Insets(0, 0, 0, 0), 0, 0));
				getContentPane().add(
						jButton2,
						new GridBagConstraints(4, 1, 1, 1, 0.0, 0.0,
								GridBagConstraints.CENTER,
								GridBagConstraints.NONE,
								new Insets(0, 0, 0, 0), 0, 0));
				jButton2.setPreferredSize(new java.awt.Dimension(104, 67));
				jButton2.setFont(new java.awt.Font("Aakar", 1, 20));
				{
					jButton4 = new JButton();
					getContentPane().add(
							jButton4,
							new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0,
									GridBagConstraints.CENTER,
									GridBagConstraints.NONE, new Insets(0, 0,
											0, 0), 0, 0));
					jButton4.setText("2");
					jButton4.setPreferredSize(new java.awt.Dimension(75, 67));
					jButton4.setFont(new java.awt.Font("Aakar", 1, 20));
					jButton4.addMouseListener(new MouseAdapter()
					{
						public void mouseClicked(MouseEvent evt)
						{
							jAreaTexto2.setText(jAreaTexto2.getText() + "2");
						}
					});
				}
				{
					jButton5 = new JButton();
					getContentPane().add(
							jButton5,
							new GridBagConstraints(3, 0, 1, 1, 0.0, 0.0,
									GridBagConstraints.CENTER,
									GridBagConstraints.NONE, new Insets(0, 0,
											0, 0), 0, 0));
					jButton5.setText("3");
					jButton5.setPreferredSize(new java.awt.Dimension(75, 67));
					jButton5.setFont(new java.awt.Font("Aakar", 1, 20));
					jButton5.addMouseListener(new MouseAdapter()
					{
						public void mouseClicked(MouseEvent evt)
						{
							jAreaTexto2.setText(jAreaTexto2.getText() + "3");
						}
					});
				}
				{
					jButton6 = new JButton();
					getContentPane().add(
							jButton6,
							new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0,
									GridBagConstraints.CENTER,
									GridBagConstraints.NONE, new Insets(0, 0,
											0, 0), 0, 0));
					jButton6.setText("4");
					jButton6.setPreferredSize(new java.awt.Dimension(75, 67));
					jButton6.setFont(new java.awt.Font("Aakar", 1, 20));
					jButton6.addMouseListener(new MouseAdapter()
					{
						public void mouseClicked(MouseEvent evt)
						{
							jAreaTexto2.setText(jAreaTexto2.getText() + "4");
						}
					});
				}
				{
					jButton7 = new JButton();
					getContentPane().add(
							jButton7,
							new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0,
									GridBagConstraints.CENTER,
									GridBagConstraints.NONE, new Insets(0, 0,
											0, 0), 0, 0));
					jButton7.setText("5");
					jButton7.setPreferredSize(new java.awt.Dimension(75, 67));
					jButton7.setFont(new java.awt.Font("Aakar", 1, 20));
					jButton7.addMouseListener(new MouseAdapter()
					{
						public void mouseClicked(MouseEvent evt)
						{
							jAreaTexto2.setText(jAreaTexto2.getText() + "5");
						}
					});
				}
				{
					jButton8 = new JButton();
					getContentPane().add(
							jButton8,
							new GridBagConstraints(3, 1, 1, 1, 0.0, 0.0,
									GridBagConstraints.CENTER,
									GridBagConstraints.NONE, new Insets(0, 0,
											0, 0), 0, 0));
					jButton8.setText("6");
					jButton8.setPreferredSize(new java.awt.Dimension(75, 67));
					jButton8.setFont(new java.awt.Font("Aakar", 1, 20));
					jButton8.addMouseListener(new MouseAdapter()
					{
						public void mouseClicked(MouseEvent evt)
						{
							jAreaTexto2.setText(jAreaTexto2.getText() + "6");
						}
					});
				}
				{
					jButton9 = new JButton();
					getContentPane().add(
							jButton9,
							new GridBagConstraints(1, 2, 1, 1, 0.0, 0.0,
									GridBagConstraints.CENTER,
									GridBagConstraints.NONE, new Insets(0, 0,
											0, 0), 0, 0));
					jButton9.setText("7");
					jButton9.setPreferredSize(new java.awt.Dimension(75, 67));
					jButton9.setFont(new java.awt.Font("Aakar", 1, 20));
					jButton9.addMouseListener(new MouseAdapter()
					{
						public void mouseClicked(MouseEvent evt)
						{
							jAreaTexto2.setText(jAreaTexto2.getText() + "7");
						}
					});
				}
				{
					jButton10 = new JButton();
					getContentPane().add(
							jButton10,
							new GridBagConstraints(2, 2, 1, 1, 0.0, 0.0,
									GridBagConstraints.CENTER,
									GridBagConstraints.NONE, new Insets(0, 0,
											0, 0), 0, 0));
					jButton10.setText("8");
					jButton10.setPreferredSize(new java.awt.Dimension(75, 67));
					jButton10.setFont(new java.awt.Font("Aakar", 1, 20));
					jButton10.addMouseListener(new MouseAdapter()
					{
						public void mouseClicked(MouseEvent evt)
						{
							jAreaTexto2.setText(jAreaTexto2.getText() + "8");
						}
					});
				}
				{
					jButton11 = new JButton();
					getContentPane().add(
							jButton11,
							new GridBagConstraints(3, 2, 1, 1, 0.0, 0.0,
									GridBagConstraints.CENTER,
									GridBagConstraints.NONE, new Insets(0, 0,
											0, 0), 0, 0));
					jButton11.setText("9");
					jButton11.setPreferredSize(new java.awt.Dimension(75, 67));
					jButton11.setFont(new java.awt.Font("Aakar", 1, 20));
					jButton11.addMouseListener(new MouseAdapter()
					{
						public void mouseClicked(MouseEvent evt)
						{
							jAreaTexto2.setText(jAreaTexto2.getText() + "9");
						}
					});
				}
				{
					jButton12 = new JButton();
					getContentPane().add(
							jButton12,
							new GridBagConstraints(4, 3, 1, 1, 0.0, 0.0,
									GridBagConstraints.CENTER,
									GridBagConstraints.NONE, new Insets(0, 0,
											0, 0), 0, 0));
					jButton12.setText("0");
					jButton12.setPreferredSize(new java.awt.Dimension(75, 67));
					jButton12.setFont(new java.awt.Font("Aakar", 1, 20));
					jButton12.addMouseListener(new MouseAdapter()
					{
						public void mouseClicked(MouseEvent evt)
						{
							jAreaTexto2.setText(jAreaTexto2.getText() + "0");
						}
					});
				}
				{
					jButton13 = new JButton();
					getContentPane().add(
							jButton13,
							new GridBagConstraints(4, 2, 1, 1, 0.0, 0.0,
									GridBagConstraints.CENTER,
									GridBagConstraints.NONE, new Insets(0, 0,
											0, 0), 0, 0));
					jButton13.setText("OK");
					jButton13.setPreferredSize(new java.awt.Dimension(104, 67));
					jButton13.setFont(new java.awt.Font("Aakar", 1, 20));
					jButton13.addMouseListener(new MouseAdapter()
					{
						public void mouseClicked(MouseEvent evt)
						{
							/*
							 * try { timer.cancel(); } catch (Exception e) {
							 * 
							 * }//
							 */

							String valortypeado = jAreaTexto2.getText(); // Leo
																			// el
																			// piso
																			// elegido
							if (!valortypeado.isEmpty())
							{
								int PisoSolicitado = 0;

								PisoSolicitado = Integer.valueOf(valortypeado);

								if (PisoSolicitado > CantidadTotalPisos) // Valido
																			// si
																			// es
																			// una
																			// seleccion
																			// de
																			// piso
																			// valida
								{
									// clareo las variables usadas y pongo en
									// blanco el texto
									valortypeado = "";
									jAreaTexto2.setText(valortypeado);
								}
								// colocar codigo de salida al piso deseado
								else
								// si es un piso valido
								{
								//	timer.cancel();
									if (PisoSolicitado <= CantidadPisosARD1
											&& PrimerPuertoAbierto == true) // es
																			// un
																			// piso
																			// que
																			// corresponde
																			// al
																			// primer
																			// controlador
									{
										String Salida = String
												.valueOf(PisoSolicitado);
										Primero.EscribirPuerto("ON" + Salida);
										System.out.println(Salida);
									}
									if (PisoSolicitado > CantidadPisosARD1
											&& PisoSolicitado <= (CantidadPisosARD2 + CantidadPisosARD1)
											&& SegundoPuertoAbierto == true) // es
																				// un
																				// piso
																				// que
																				// corresponde
																				// al
																				// segundo
																				// controlador
									{
										PisoSolicitado = PisoSolicitado
												- CantidadPisosARD1;
										String Salida = String
												.valueOf(PisoSolicitado);
										Segundo.EscribirPuerto("ON" + Salida);
										System.out.println(Salida);
									}
									if (PisoSolicitado > (CantidadPisosARD1 + CantidadPisosARD2)
											&& PisoSolicitado <= (CantidadPisosARD3
													+ CantidadPisosARD2 + CantidadPisosARD1)
											&& TercerPuertoAbierto == true) // es
																			// un
																			// piso
																			// que
																			// corresponde
																			// al
																			// tercer
																			// controlador
									{
										PisoSolicitado = PisoSolicitado
												- CantidadPisosARD1
												- CantidadPisosARD2;
										String Salida = String
												.valueOf(PisoSolicitado);
										Tercero.EscribirPuerto("ON" + Salida);
									}
									// clareo las variables usadas y pongo en
									// blanco el texto
									valortypeado = "";
									jAreaTexto2.setText(valortypeado);
									
									
									//IniciarTimer();
								}

							}
							
						}
					});
				}
				{
					jAreaTexto2 = new JTextField();
					getContentPane().add(
							jAreaTexto2,
							new GridBagConstraints(5, 3, 1, 2, 0.0, 0.0,
									GridBagConstraints.NORTHWEST,
									GridBagConstraints.NONE, new Insets(0, 0,
											0, 0), 0, 0));
					jAreaTexto2.setPreferredSize(new java.awt.Dimension(101,
							116));
					jAreaTexto2.setFont(new java.awt.Font("Aakar", 1, 20));
				}
				{
					jButton14 = new JButton();
					getContentPane().add(
							jButton14,
							new GridBagConstraints(5, 2, 1, 1, 0.0, 0.0,
									GridBagConstraints.CENTER,
									GridBagConstraints.NONE, new Insets(0, 0,
											0, 0), 0, 0));
					jButton14.setText("DEL");
					jButton14.setFont(new java.awt.Font("Aakar", 1, 20));
					jButton14.setPreferredSize(new java.awt.Dimension(86, 67));
					jButton14.addMouseListener(new MouseAdapter()
					{
						public void mouseClicked(MouseEvent evt)
						{
							jAreaTexto2.setText("");
						}
					});
				}
				{
					jAreaTexto1 = new JTextField();
					getContentPane().add(
							jAreaTexto1,
							new GridBagConstraints(1, 3, 3, 1, 0.0, 0.0,
									GridBagConstraints.NORTHWEST,
									GridBagConstraints.NONE, new Insets(0, 0,
											0, 0), 0, 0));
					jAreaTexto1.setFont(new java.awt.Font("Aakar", 3, 26));
					jAreaTexto1.setPreferredSize(new java.awt.Dimension(223,
							118));
					jAreaTexto1.setAutoscrolls(true);
					jAreaTexto1.setSelectedTextColor(new java.awt.Color(255,
							255, 255));
					jAreaTexto1.setEditable(false);
				}
				jButton3.setText("<|>");
				jButton3.setPreferredSize(new java.awt.Dimension(104, 67));
				jButton3.setFont(new java.awt.Font("Aakar", 1, 20));
				jButton3.addMouseListener(new MouseAdapter()
				{
					public void mouseClicked(MouseEvent evt)
					{
						System.out.println("jButton3.mouseClicked, event="
								+ evt);
					}
				});
			}
			thisLayout.rowWeights = new double[] { 0.0, 0.0, 0.0, 0.0, 0.1 };
			thisLayout.rowHeights = new int[] { 64, 47, 53, 119, 20 };
			thisLayout.columnWeights = new double[] { 0.0, 0.0, 0.0, 0.0, 0.0,
					0.1 };
			thisLayout.columnWidths = new int[] { 22, 34, 46, 75, 76, 7 };
			pack();
			this.setSize(472, 372);
			//this.setSize(this.getMaximumSize());
			//this.setVisible();
		} catch (Exception e)
		{
			e.printStackTrace();
		}
	}
}
